#include "BulletDynamics/Featherstone/btMultiBody.h"
#ifdef __cplusplus
extern "C" {
#endif
btMultiBodyLinkFloatData* bullet_NewbtMultiBodyLinkFloatData(){
	btMultiBodyLinkFloatData* wrap_out = new btMultiBodyLinkFloatData();
	return wrap_out;
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_absFrameLocVelocityBottom(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_absFrameLocVelocityBottom);
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_absFrameLocVelocityTop(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_absFrameLocVelocityTop);
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_absFrameTotVelocityBottom(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_absFrameTotVelocityBottom);
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_absFrameTotVelocityTop(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_absFrameTotVelocityTop);
}

int bullet_btMultiBodyLinkFloatData_GetFieldOfM_dofCount(btMultiBodyLinkFloatData* c_this){
	return (int)(c_this->m_dofCount);
}

btVector3FloatData** bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointAxisBottom(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData**)(&c_this->m_jointAxisBottom);
}

btVector3FloatData** bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointAxisTop(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData**)(&c_this->m_jointAxisTop);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointDamping(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_jointDamping);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointFriction(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_jointFriction);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointLowerLimit(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_jointLowerLimit);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointMaxForce(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_jointMaxForce);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointMaxVelocity(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_jointMaxVelocity);
}

char** bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointName(btMultiBodyLinkFloatData* c_this){
	return (char**)(&c_this->m_jointName);
}

float** bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointPos(btMultiBodyLinkFloatData* c_this){
	return (float**)(&c_this->m_jointPos);
}

float** bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointTorque(btMultiBodyLinkFloatData* c_this){
	return (float**)(&c_this->m_jointTorque);
}

int bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointType(btMultiBodyLinkFloatData* c_this){
	return (int)(c_this->m_jointType);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointUpperLimit(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_jointUpperLimit);
}

float** bullet_btMultiBodyLinkFloatData_GetFieldOfM_jointVel(btMultiBodyLinkFloatData* c_this){
	return (float**)(&c_this->m_jointVel);
}

btCollisionObjectFloatData** bullet_btMultiBodyLinkFloatData_GetFieldOfM_linkCollider(btMultiBodyLinkFloatData* c_this){
	return (btCollisionObjectFloatData**)(&c_this->m_linkCollider);
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_linkInertia(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_linkInertia);
}

float bullet_btMultiBodyLinkFloatData_GetFieldOfM_linkMass(btMultiBodyLinkFloatData* c_this){
	return (float)(c_this->m_linkMass);
}

char** bullet_btMultiBodyLinkFloatData_GetFieldOfM_linkName(btMultiBodyLinkFloatData* c_this){
	return (char**)(&c_this->m_linkName);
}

char** bullet_btMultiBodyLinkFloatData_GetFieldOfM_paddingPtr(btMultiBodyLinkFloatData* c_this){
	return (char**)(&c_this->m_paddingPtr);
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_parentComToThisPivotOffset(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_parentComToThisPivotOffset);
}

int bullet_btMultiBodyLinkFloatData_GetFieldOfM_parentIndex(btMultiBodyLinkFloatData* c_this){
	return (int)(c_this->m_parentIndex);
}

int bullet_btMultiBodyLinkFloatData_GetFieldOfM_posVarCount(btMultiBodyLinkFloatData* c_this){
	return (int)(c_this->m_posVarCount);
}

btVector3FloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_thisPivotToThisComOffset(btMultiBodyLinkFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_thisPivotToThisComOffset);
}

btQuaternionFloatData* bullet_btMultiBodyLinkFloatData_GetFieldOfM_zeroRotParentToThis(btMultiBodyLinkFloatData* c_this){
	return (btQuaternionFloatData*)(&c_this->m_zeroRotParentToThis);
}

btMultiBodyLinkDoubleData* bullet_NewbtMultiBodyLinkDoubleData(){
	btMultiBodyLinkDoubleData* wrap_out = new btMultiBodyLinkDoubleData();
	return wrap_out;
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_absFrameLocVelocityBottom(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_absFrameLocVelocityBottom);
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_absFrameLocVelocityTop(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_absFrameLocVelocityTop);
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_absFrameTotVelocityBottom(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_absFrameTotVelocityBottom);
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_absFrameTotVelocityTop(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_absFrameTotVelocityTop);
}

int bullet_btMultiBodyLinkDoubleData_GetFieldOfM_dofCount(btMultiBodyLinkDoubleData* c_this){
	return (int)(c_this->m_dofCount);
}

btVector3DoubleData** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointAxisBottom(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData**)(&c_this->m_jointAxisBottom);
}

btVector3DoubleData** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointAxisTop(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData**)(&c_this->m_jointAxisTop);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointDamping(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_jointDamping);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointFriction(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_jointFriction);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointLowerLimit(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_jointLowerLimit);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointMaxForce(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_jointMaxForce);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointMaxVelocity(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_jointMaxVelocity);
}

char** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointName(btMultiBodyLinkDoubleData* c_this){
	return (char**)(&c_this->m_jointName);
}

double** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointPos(btMultiBodyLinkDoubleData* c_this){
	return (double**)(&c_this->m_jointPos);
}

double** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointTorque(btMultiBodyLinkDoubleData* c_this){
	return (double**)(&c_this->m_jointTorque);
}

int bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointType(btMultiBodyLinkDoubleData* c_this){
	return (int)(c_this->m_jointType);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointUpperLimit(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_jointUpperLimit);
}

double** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_jointVel(btMultiBodyLinkDoubleData* c_this){
	return (double**)(&c_this->m_jointVel);
}

btCollisionObjectDoubleData** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_linkCollider(btMultiBodyLinkDoubleData* c_this){
	return (btCollisionObjectDoubleData**)(&c_this->m_linkCollider);
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_linkInertia(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_linkInertia);
}

double bullet_btMultiBodyLinkDoubleData_GetFieldOfM_linkMass(btMultiBodyLinkDoubleData* c_this){
	return (double)(c_this->m_linkMass);
}

char** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_linkName(btMultiBodyLinkDoubleData* c_this){
	return (char**)(&c_this->m_linkName);
}

char** bullet_btMultiBodyLinkDoubleData_GetFieldOfM_paddingPtr(btMultiBodyLinkDoubleData* c_this){
	return (char**)(&c_this->m_paddingPtr);
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_parentComToThisPivotOffset(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_parentComToThisPivotOffset);
}

int bullet_btMultiBodyLinkDoubleData_GetFieldOfM_parentIndex(btMultiBodyLinkDoubleData* c_this){
	return (int)(c_this->m_parentIndex);
}

int bullet_btMultiBodyLinkDoubleData_GetFieldOfM_posVarCount(btMultiBodyLinkDoubleData* c_this){
	return (int)(c_this->m_posVarCount);
}

btVector3DoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_thisPivotToThisComOffset(btMultiBodyLinkDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_thisPivotToThisComOffset);
}

btQuaternionDoubleData* bullet_btMultiBodyLinkDoubleData_GetFieldOfM_zeroRotParentToThis(btMultiBodyLinkDoubleData* c_this){
	return (btQuaternionDoubleData*)(&c_this->m_zeroRotParentToThis);
}

btMultiBodyFloatData* bullet_NewbtMultiBodyFloatData(){
	btMultiBodyFloatData* wrap_out = new btMultiBodyFloatData();
	return wrap_out;
}

btVector3FloatData* bullet_btMultiBodyFloatData_GetFieldOfM_baseAngularVelocity(btMultiBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_baseAngularVelocity);
}

btCollisionObjectFloatData** bullet_btMultiBodyFloatData_GetFieldOfM_baseCollider(btMultiBodyFloatData* c_this){
	return (btCollisionObjectFloatData**)(&c_this->m_baseCollider);
}

btVector3FloatData* bullet_btMultiBodyFloatData_GetFieldOfM_baseInertia(btMultiBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_baseInertia);
}

btVector3FloatData* bullet_btMultiBodyFloatData_GetFieldOfM_baseLinearVelocity(btMultiBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_baseLinearVelocity);
}

float bullet_btMultiBodyFloatData_GetFieldOfM_baseMass(btMultiBodyFloatData* c_this){
	return (float)(c_this->m_baseMass);
}

char** bullet_btMultiBodyFloatData_GetFieldOfM_baseName(btMultiBodyFloatData* c_this){
	return (char**)(&c_this->m_baseName);
}

btQuaternionFloatData* bullet_btMultiBodyFloatData_GetFieldOfM_baseWorldOrientation(btMultiBodyFloatData* c_this){
	return (btQuaternionFloatData*)(&c_this->m_baseWorldOrientation);
}

btVector3FloatData* bullet_btMultiBodyFloatData_GetFieldOfM_baseWorldPosition(btMultiBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_baseWorldPosition);
}

btMultiBodyLinkFloatData** bullet_btMultiBodyFloatData_GetFieldOfM_links(btMultiBodyFloatData* c_this){
	return (btMultiBodyLinkFloatData**)(&c_this->m_links);
}

int bullet_btMultiBodyFloatData_GetFieldOfM_numLinks(btMultiBodyFloatData* c_this){
	return (int)(c_this->m_numLinks);
}

btMultiBodyDoubleData* bullet_NewbtMultiBodyDoubleData(){
	btMultiBodyDoubleData* wrap_out = new btMultiBodyDoubleData();
	return wrap_out;
}

btVector3DoubleData* bullet_btMultiBodyDoubleData_GetFieldOfM_baseAngularVelocity(btMultiBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_baseAngularVelocity);
}

btCollisionObjectDoubleData** bullet_btMultiBodyDoubleData_GetFieldOfM_baseCollider(btMultiBodyDoubleData* c_this){
	return (btCollisionObjectDoubleData**)(&c_this->m_baseCollider);
}

btVector3DoubleData* bullet_btMultiBodyDoubleData_GetFieldOfM_baseInertia(btMultiBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_baseInertia);
}

btVector3DoubleData* bullet_btMultiBodyDoubleData_GetFieldOfM_baseLinearVelocity(btMultiBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_baseLinearVelocity);
}

double bullet_btMultiBodyDoubleData_GetFieldOfM_baseMass(btMultiBodyDoubleData* c_this){
	return (double)(c_this->m_baseMass);
}

char** bullet_btMultiBodyDoubleData_GetFieldOfM_baseName(btMultiBodyDoubleData* c_this){
	return (char**)(&c_this->m_baseName);
}

btQuaternionDoubleData* bullet_btMultiBodyDoubleData_GetFieldOfM_baseWorldOrientation(btMultiBodyDoubleData* c_this){
	return (btQuaternionDoubleData*)(&c_this->m_baseWorldOrientation);
}

btVector3DoubleData* bullet_btMultiBodyDoubleData_GetFieldOfM_baseWorldPosition(btMultiBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_baseWorldPosition);
}

btMultiBodyLinkDoubleData** bullet_btMultiBodyDoubleData_GetFieldOfM_links(btMultiBodyDoubleData* c_this){
	return (btMultiBodyLinkDoubleData**)(&c_this->m_links);
}

int bullet_btMultiBodyDoubleData_GetFieldOfM_numLinks(btMultiBodyDoubleData* c_this){
	return (int)(c_this->m_numLinks);
}

char** bullet_btMultiBodyDoubleData_GetFieldOfM_padding(btMultiBodyDoubleData* c_this){
	return (char**)(&c_this->m_padding);
}

btMultiBody* bullet_NewbtMultiBody(int n_links,double mass,btVector3* inertia,bool fixedBase,bool canSleep,bool deprecatedMultiDof){
	int c_arg_n_links=n_links;
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	bool c_arg_fixedBase=fixedBase;
	bool c_arg_canSleep=canSleep;
	bool c_arg_deprecatedMultiDof=deprecatedMultiDof;
	btMultiBody* wrap_out = new btMultiBody(c_arg_n_links,c_arg_mass,c_arg_inertia,c_arg_fixedBase,c_arg_canSleep,c_arg_deprecatedMultiDof);
	return wrap_out;
}

void bullet_btMultiBody_addBaseConstraintForce(btMultiBody* c_this,btVector3* f){
	btVector3 const& c_arg_f=(btVector3 const&)(*f);
	c_this->addBaseConstraintForce(c_arg_f);
}

void bullet_btMultiBody_addBaseConstraintTorque(btMultiBody* c_this,btVector3* t){
	btVector3 const& c_arg_t=(btVector3 const&)(*t);
	c_this->addBaseConstraintTorque(c_arg_t);
}

void bullet_btMultiBody_addBaseForce(btMultiBody* c_this,btVector3* f){
	btVector3 const& c_arg_f=(btVector3 const&)(*f);
	c_this->addBaseForce(c_arg_f);
}

void bullet_btMultiBody_addBaseTorque(btMultiBody* c_this,btVector3* t){
	btVector3 const& c_arg_t=(btVector3 const&)(*t);
	c_this->addBaseTorque(c_arg_t);
}

void bullet_btMultiBody_addJointTorque(btMultiBody* c_this,int i,double Q){
	int c_arg_i=i;
	btScalar c_arg_Q=Q;
	c_this->addJointTorque(c_arg_i,c_arg_Q);
}

void bullet_btMultiBody_addJointTorqueMultiDof(btMultiBody* c_this,int i,int dof,double Q){
	int c_arg_i=i;
	int c_arg_dof=dof;
	btScalar c_arg_Q=Q;
	c_this->addJointTorqueMultiDof(c_arg_i,c_arg_dof,c_arg_Q);
}

void bullet_btMultiBody_addJointTorqueMultiDof1(btMultiBody* c_this,int i,double* Q){
	int c_arg_i=i;
	btScalar const * c_arg_Q=(btScalar const *)(void*)(Q);
	c_this->addJointTorqueMultiDof(c_arg_i,c_arg_Q);
}

void bullet_btMultiBody_addLinkConstraintForce(btMultiBody* c_this,int i,btVector3* f){
	int c_arg_i=i;
	btVector3 const& c_arg_f=(btVector3 const&)(*f);
	c_this->addLinkConstraintForce(c_arg_i,c_arg_f);
}

void bullet_btMultiBody_addLinkConstraintTorque(btMultiBody* c_this,int i,btVector3* t){
	int c_arg_i=i;
	btVector3 const& c_arg_t=(btVector3 const&)(*t);
	c_this->addLinkConstraintTorque(c_arg_i,c_arg_t);
}

void bullet_btMultiBody_addLinkForce(btMultiBody* c_this,int i,btVector3* f){
	int c_arg_i=i;
	btVector3 const& c_arg_f=(btVector3 const&)(*f);
	c_this->addLinkForce(c_arg_i,c_arg_f);
}

void bullet_btMultiBody_addLinkTorque(btMultiBody* c_this,int i,btVector3* t){
	int c_arg_i=i;
	btVector3 const& c_arg_t=(btVector3 const&)(*t);
	c_this->addLinkTorque(c_arg_i,c_arg_t);
}

void bullet_btMultiBody_addSplitV(btMultiBody* c_this){
	c_this->addSplitV();
}

void bullet_btMultiBody_applyDeltaSplitVeeMultiDof(btMultiBody* c_this,double* delta_vee,double multiplier){
	btScalar const * c_arg_delta_vee=(btScalar const *)(void*)(delta_vee);
	btScalar c_arg_multiplier=multiplier;
	c_this->applyDeltaSplitVeeMultiDof(c_arg_delta_vee,c_arg_multiplier);
}

void bullet_btMultiBody_applyDeltaVeeMultiDof(btMultiBody* c_this,double* delta_vee,double multiplier){
	btScalar const * c_arg_delta_vee=(btScalar const *)(void*)(delta_vee);
	btScalar c_arg_multiplier=multiplier;
	c_this->applyDeltaVeeMultiDof(c_arg_delta_vee,c_arg_multiplier);
}

void bullet_btMultiBody_applyDeltaVeeMultiDof2(btMultiBody* c_this,double* delta_vee,double multiplier){
	btScalar const * c_arg_delta_vee=(btScalar const *)(void*)(delta_vee);
	btScalar c_arg_multiplier=multiplier;
	c_this->applyDeltaVeeMultiDof2(c_arg_delta_vee,c_arg_multiplier);
}

void bullet_btMultiBody_checkMotionAndSleepIfRequired(btMultiBody* c_this,double timestep){
	btScalar c_arg_timestep=timestep;
	c_this->checkMotionAndSleepIfRequired(c_arg_timestep);
}

void bullet_btMultiBody_clearConstraintForces(btMultiBody* c_this){
	c_this->clearConstraintForces();
}

void bullet_btMultiBody_clearForcesAndTorques(btMultiBody* c_this){
	c_this->clearForcesAndTorques();
}

void bullet_btMultiBody_clearVelocities(btMultiBody* c_this){
	c_this->clearVelocities();
}

void bullet_btMultiBody_compTreeLinkVelocities(btMultiBody* c_this,btVector3* omega,btVector3* vel){
	btVector3 * c_arg_omega=(btVector3 *)(void*)(omega);
	btVector3 * c_arg_vel=(btVector3 *)(void*)(vel);
	c_this->compTreeLinkVelocities(c_arg_omega,c_arg_vel);
}

void bullet_btMultiBody_finalizeMultiDof(btMultiBody* c_this){
	c_this->finalizeMultiDof();
}

double bullet_btMultiBody_getAngularDamping(btMultiBody* c_this){
	btScalar c_out = c_this->getAngularDamping();
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getBaseForce(btMultiBody* c_this){
	btVector3 const& c_out = c_this->getBaseForce();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getBaseInertia(btMultiBody* c_this){
	btVector3 const& c_out = c_this->getBaseInertia();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btMultiBody_getBaseMass(btMultiBody* c_this){
	btScalar c_out = c_this->getBaseMass();
	double wrap_out = (c_out);
	return wrap_out;
}

char* bullet_btMultiBody_getBaseName(btMultiBody* c_this){
	char const * c_out = c_this->getBaseName();
	char* wrap_out = (char*)(void*)(c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getBaseOmega(btMultiBody* c_this){
	btVector3 c_out = c_this->getBaseOmega();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getBasePos(btMultiBody* c_this){
	btVector3 const& c_out = c_this->getBasePos();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getBaseTorque(btMultiBody* c_this){
	btVector3 const& c_out = c_this->getBaseTorque();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getBaseVel(btMultiBody* c_this){
	btVector3 const c_out = c_this->getBaseVel();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btTransform* bullet_btMultiBody_getBaseWorldTransform(btMultiBody* c_this){
	btTransform c_out = c_this->getBaseWorldTransform();
	btTransform* wrap_out = new btTransform(c_out);
	return wrap_out;
}

bool bullet_btMultiBody_getCanSleep(btMultiBody* c_this){
	bool c_out = c_this->getCanSleep();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_getCanWakeup(btMultiBody* c_this){
	bool c_out = c_this->getCanWakeup();
	bool wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getCompanionId(btMultiBody* c_this){
	int c_out = c_this->getCompanionId();
	int wrap_out = (c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getDeltaVelocityVector(btMultiBody* c_this){
	btScalar const * c_out = c_this->getDeltaVelocityVector();
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getInterpolateBasePos(btMultiBody* c_this){
	btVector3 const& c_out = c_this->getInterpolateBasePos();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btTransform* bullet_btMultiBody_getInterpolateBaseWorldTransform(btMultiBody* c_this){
	btTransform c_out = c_this->getInterpolateBaseWorldTransform();
	btTransform* wrap_out = new btTransform(c_out);
	return wrap_out;
}

btQuaternion* bullet_btMultiBody_getInterpolateParentToLocalRot(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btQuaternion const& c_out = c_this->getInterpolateParentToLocalRot(c_arg_i);
	btQuaternion* wrap_out = (btQuaternion*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getInterpolateRVector(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btVector3 const& c_out = c_this->getInterpolateRVector(c_arg_i);
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btQuaternion* bullet_btMultiBody_getInterpolateWorldToBaseRot(btMultiBody* c_this){
	btQuaternion const& c_out = c_this->getInterpolateWorldToBaseRot();
	btQuaternion* wrap_out = (btQuaternion*)(&c_out);
	return wrap_out;
}

double bullet_btMultiBody_getJointPos(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar c_out = c_this->getJointPos(c_arg_i);
	double wrap_out = (c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getJointPosMultiDof(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar * c_out = c_this->getJointPosMultiDof(c_arg_i);
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getJointPosMultiDof1(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar const * c_out = c_this->getJointPosMultiDof(c_arg_i);
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

double bullet_btMultiBody_getJointTorque(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar c_out = c_this->getJointTorque(c_arg_i);
	double wrap_out = (c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getJointTorqueMultiDof(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar * c_out = c_this->getJointTorqueMultiDof(c_arg_i);
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

double bullet_btMultiBody_getJointVel(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar c_out = c_this->getJointVel(c_arg_i);
	double wrap_out = (c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getJointVelMultiDof(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar * c_out = c_this->getJointVelMultiDof(c_arg_i);
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getJointVelMultiDof1(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar const * c_out = c_this->getJointVelMultiDof(c_arg_i);
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

double bullet_btMultiBody_getLinearDamping(btMultiBody* c_this){
	btScalar c_out = c_this->getLinearDamping();
	double wrap_out = (c_out);
	return wrap_out;
}

btMultibodyLink* bullet_btMultiBody_getLink(btMultiBody* c_this,int index){
	int c_arg_index=index;
	btMultibodyLink const& c_out = c_this->getLink(c_arg_index);
	btMultibodyLink* wrap_out = (btMultibodyLink*)(&c_out);
	return wrap_out;
}

btMultibodyLink* bullet_btMultiBody_getLink1(btMultiBody* c_this,int index){
	int c_arg_index=index;
	btMultibodyLink& c_out = c_this->getLink(c_arg_index);
	btMultibodyLink* wrap_out = (btMultibodyLink*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getLinkForce(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btVector3 const& c_out = c_this->getLinkForce(c_arg_i);
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getLinkInertia(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btVector3 const& c_out = c_this->getLinkInertia(c_arg_i);
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btMultiBody_getLinkMass(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btScalar c_out = c_this->getLinkMass(c_arg_i);
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getLinkTorque(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btVector3 const& c_out = c_this->getLinkTorque(c_arg_i);
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btMultiBody_getMaxAppliedImpulse(btMultiBody* c_this){
	btScalar c_out = c_this->getMaxAppliedImpulse();
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btMultiBody_getMaxCoordinateVelocity(btMultiBody* c_this){
	btScalar c_out = c_this->getMaxCoordinateVelocity();
	double wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getNumDofs(btMultiBody* c_this){
	int c_out = c_this->getNumDofs();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getNumLinks(btMultiBody* c_this){
	int c_out = c_this->getNumLinks();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getNumPosVars(btMultiBody* c_this){
	int c_out = c_this->getNumPosVars();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getParent(btMultiBody* c_this,int link_num){
	int c_arg_link_num=link_num;
	int c_out = c_this->getParent(c_arg_link_num);
	int wrap_out = (c_out);
	return wrap_out;
}

btQuaternion* bullet_btMultiBody_getParentToLocalRot(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btQuaternion const& c_out = c_this->getParentToLocalRot(c_arg_i);
	btQuaternion* wrap_out = (btQuaternion*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_getRVector(btMultiBody* c_this,int i){
	int c_arg_i=i;
	btVector3 const& c_out = c_this->getRVector(c_arg_i);
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getSplitVelocityVector(btMultiBody* c_this){
	btScalar const * c_out = c_this->getSplitVelocityVector();
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

bool bullet_btMultiBody_getUseGyroTerm(btMultiBody* c_this){
	bool c_out = c_this->getUseGyroTerm();
	bool wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getUserIndex(btMultiBody* c_this){
	int c_out = c_this->getUserIndex();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btMultiBody_getUserIndex2(btMultiBody* c_this){
	int c_out = c_this->getUserIndex2();
	int wrap_out = (c_out);
	return wrap_out;
}

void* bullet_btMultiBody_getUserPointer(btMultiBody* c_this){
	void * c_out = c_this->getUserPointer();
	void* wrap_out = (void*)(void*)(c_out);
	return wrap_out;
}

double* bullet_btMultiBody_getVelocityVector(btMultiBody* c_this){
	btScalar const * c_out = c_this->getVelocityVector();
	double* wrap_out = (double*)(void*)(c_out);
	return wrap_out;
}

btQuaternion* bullet_btMultiBody_getWorldToBaseRot(btMultiBody* c_this){
	btQuaternion const& c_out = c_this->getWorldToBaseRot();
	btQuaternion* wrap_out = (btQuaternion*)(&c_out);
	return wrap_out;
}

void bullet_btMultiBody_goToSleep(btMultiBody* c_this){
	c_this->goToSleep();
}

bool bullet_btMultiBody_hasFixedBase(btMultiBody* c_this){
	bool c_out = c_this->hasFixedBase();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_hasSelfCollision(btMultiBody* c_this){
	bool c_out = c_this->hasSelfCollision();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_internalNeedsJointFeedback(btMultiBody* c_this){
	bool c_out = c_this->internalNeedsJointFeedback();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isAwake(btMultiBody* c_this){
	bool c_out = c_this->isAwake();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isBaseKinematic(btMultiBody* c_this){
	bool c_out = c_this->isBaseKinematic();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isBaseStaticOrKinematic(btMultiBody* c_this){
	bool c_out = c_this->isBaseStaticOrKinematic();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isLinkAndAllAncestorsKinematic(btMultiBody* c_this,int i){
	int const c_arg_i=i;
	bool c_out = c_this->isLinkAndAllAncestorsKinematic(c_arg_i);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isLinkAndAllAncestorsStaticOrKinematic(btMultiBody* c_this,int i){
	int const c_arg_i=i;
	bool c_out = c_this->isLinkAndAllAncestorsStaticOrKinematic(c_arg_i);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isLinkKinematic(btMultiBody* c_this,int i){
	int const c_arg_i=i;
	bool c_out = c_this->isLinkKinematic(c_arg_i);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isLinkStaticOrKinematic(btMultiBody* c_this,int i){
	int const c_arg_i=i;
	bool c_out = c_this->isLinkStaticOrKinematic(c_arg_i);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isPosUpdated(btMultiBody* c_this){
	bool c_out = c_this->isPosUpdated();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isUsingGlobalVelocities(btMultiBody* c_this){
	bool c_out = c_this->isUsingGlobalVelocities();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btMultiBody_isUsingRK4Integration(btMultiBody* c_this){
	bool c_out = c_this->isUsingRK4Integration();
	bool wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_localDirToWorld(btMultiBody* c_this,int i,btVector3* local_dir){
	int c_arg_i=i;
	btVector3 const& c_arg_local_dir=(btVector3 const&)(*local_dir);
	btVector3 c_out = c_this->localDirToWorld(c_arg_i,c_arg_local_dir);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btMatrix3x3* bullet_btMultiBody_localFrameToWorld(btMultiBody* c_this,int i,btMatrix3x3* local_frame){
	int c_arg_i=i;
	btMatrix3x3 const& c_arg_local_frame=(btMatrix3x3 const&)(*local_frame);
	btMatrix3x3 c_out = c_this->localFrameToWorld(c_arg_i,c_arg_local_frame);
	btMatrix3x3* wrap_out = new btMatrix3x3(c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_localPosToWorld(btMultiBody* c_this,int i,btVector3* local_pos){
	int c_arg_i=i;
	btVector3 const& c_arg_local_pos=(btVector3 const&)(*local_pos);
	btVector3 c_out = c_this->localPosToWorld(c_arg_i,c_arg_local_pos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

void bullet_btMultiBody_predictPositionsMultiDof(btMultiBody* c_this,double dt){
	btScalar c_arg_dt=dt;
	c_this->predictPositionsMultiDof(c_arg_dt);
}

void bullet_btMultiBody_processDeltaVeeMultiDof2(btMultiBody* c_this){
	c_this->processDeltaVeeMultiDof2();
}

void bullet_btMultiBody_saveKinematicState(btMultiBody* c_this,double timeStep){
	btScalar c_arg_timeStep=timeStep;
	c_this->saveKinematicState(c_arg_timeStep);
}

void bullet_btMultiBody_setAngularDamping(btMultiBody* c_this,double damp){
	btScalar c_arg_damp=damp;
	c_this->setAngularDamping(c_arg_damp);
}

void bullet_btMultiBody_setBaseCollider(btMultiBody* c_this,btMultiBodyLinkCollider* collider){
	btMultiBodyLinkCollider * c_arg_collider=(btMultiBodyLinkCollider *)(void*)(collider);
	c_this->setBaseCollider(c_arg_collider);
}

void bullet_btMultiBody_setBaseDynamicType(btMultiBody* c_this,int dynamicType){
	int c_arg_dynamicType=dynamicType;
	c_this->setBaseDynamicType(c_arg_dynamicType);
}

void bullet_btMultiBody_setBaseInertia(btMultiBody* c_this,btVector3* inertia){
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	c_this->setBaseInertia(c_arg_inertia);
}

void bullet_btMultiBody_setBaseMass(btMultiBody* c_this,double mass){
	btScalar c_arg_mass=mass;
	c_this->setBaseMass(c_arg_mass);
}

void bullet_btMultiBody_setBaseName(btMultiBody* c_this,char* name){
	char const * c_arg_name=(char const *)(void*)(name);
	c_this->setBaseName(c_arg_name);
}

void bullet_btMultiBody_setBaseOmega(btMultiBody* c_this,btVector3* omega){
	btVector3 const& c_arg_omega=(btVector3 const&)(*omega);
	c_this->setBaseOmega(c_arg_omega);
}

void bullet_btMultiBody_setBasePos(btMultiBody* c_this,btVector3* pos){
	btVector3 const& c_arg_pos=(btVector3 const&)(*pos);
	c_this->setBasePos(c_arg_pos);
}

void bullet_btMultiBody_setBaseVel(btMultiBody* c_this,btVector3* vel){
	btVector3 const& c_arg_vel=(btVector3 const&)(*vel);
	c_this->setBaseVel(c_arg_vel);
}

void bullet_btMultiBody_setBaseWorldTransform(btMultiBody* c_this,btTransform* tr){
	btTransform const& c_arg_tr=(btTransform const&)(*tr);
	c_this->setBaseWorldTransform(c_arg_tr);
}

void bullet_btMultiBody_setCanSleep(btMultiBody* c_this,bool canSleep){
	bool c_arg_canSleep=canSleep;
	c_this->setCanSleep(c_arg_canSleep);
}

void bullet_btMultiBody_setCanWakeup(btMultiBody* c_this,bool canWakeup){
	bool c_arg_canWakeup=canWakeup;
	c_this->setCanWakeup(c_arg_canWakeup);
}

void bullet_btMultiBody_setCompanionId(btMultiBody* c_this,int id){
	int c_arg_id=id;
	c_this->setCompanionId(c_arg_id);
}

void bullet_btMultiBody_setFixedBase(btMultiBody* c_this,bool fixedBase){
	bool c_arg_fixedBase=fixedBase;
	c_this->setFixedBase(c_arg_fixedBase);
}

void bullet_btMultiBody_setHasSelfCollision(btMultiBody* c_this,bool hasSelfCollision){
	bool c_arg_hasSelfCollision=hasSelfCollision;
	c_this->setHasSelfCollision(c_arg_hasSelfCollision);
}

void bullet_btMultiBody_setInterpolateBasePos(btMultiBody* c_this,btVector3* pos){
	btVector3 const& c_arg_pos=(btVector3 const&)(*pos);
	c_this->setInterpolateBasePos(c_arg_pos);
}

void bullet_btMultiBody_setInterpolateBaseWorldTransform(btMultiBody* c_this,btTransform* tr){
	btTransform const& c_arg_tr=(btTransform const&)(*tr);
	c_this->setInterpolateBaseWorldTransform(c_arg_tr);
}

void bullet_btMultiBody_setInterpolateWorldToBaseRot(btMultiBody* c_this,btQuaternion* rot){
	btQuaternion const& c_arg_rot=(btQuaternion const&)(*rot);
	c_this->setInterpolateWorldToBaseRot(c_arg_rot);
}

void bullet_btMultiBody_setJointPos(btMultiBody* c_this,int i,double q){
	int c_arg_i=i;
	btScalar c_arg_q=q;
	c_this->setJointPos(c_arg_i,c_arg_q);
}

void bullet_btMultiBody_setJointPosMultiDof(btMultiBody* c_this,int i,double* q){
	int c_arg_i=i;
	double const * c_arg_q=(double const *)(void*)(q);
	c_this->setJointPosMultiDof(c_arg_i,c_arg_q);
}

void bullet_btMultiBody_setJointPosMultiDof1(btMultiBody* c_this,int i,float* q){
	int c_arg_i=i;
	float const * c_arg_q=(float const *)(void*)(q);
	c_this->setJointPosMultiDof(c_arg_i,c_arg_q);
}

void bullet_btMultiBody_setJointVel(btMultiBody* c_this,int i,double qdot){
	int c_arg_i=i;
	btScalar c_arg_qdot=qdot;
	c_this->setJointVel(c_arg_i,c_arg_qdot);
}

void bullet_btMultiBody_setJointVelMultiDof(btMultiBody* c_this,int i,double* qdot){
	int c_arg_i=i;
	double const * c_arg_qdot=(double const *)(void*)(qdot);
	c_this->setJointVelMultiDof(c_arg_i,c_arg_qdot);
}

void bullet_btMultiBody_setJointVelMultiDof1(btMultiBody* c_this,int i,float* qdot){
	int c_arg_i=i;
	float const * c_arg_qdot=(float const *)(void*)(qdot);
	c_this->setJointVelMultiDof(c_arg_i,c_arg_qdot);
}

void bullet_btMultiBody_setLinearDamping(btMultiBody* c_this,double damp){
	btScalar c_arg_damp=damp;
	c_this->setLinearDamping(c_arg_damp);
}

void bullet_btMultiBody_setLinkDynamicType(btMultiBody* c_this,int i,int Type){
	int const c_arg_i=i;
	int c_arg_Type=Type;
	c_this->setLinkDynamicType(c_arg_i,c_arg_Type);
}

void bullet_btMultiBody_setMaxAppliedImpulse(btMultiBody* c_this,double maxImp){
	btScalar c_arg_maxImp=maxImp;
	c_this->setMaxAppliedImpulse(c_arg_maxImp);
}

void bullet_btMultiBody_setMaxCoordinateVelocity(btMultiBody* c_this,double maxVel){
	btScalar c_arg_maxVel=maxVel;
	c_this->setMaxCoordinateVelocity(c_arg_maxVel);
}

void bullet_btMultiBody_setNumLinks(btMultiBody* c_this,int numLinks){
	int c_arg_numLinks=numLinks;
	c_this->setNumLinks(c_arg_numLinks);
}

void bullet_btMultiBody_setPosUpdated(btMultiBody* c_this,bool updated){
	bool c_arg_updated=updated;
	c_this->setPosUpdated(c_arg_updated);
}

void bullet_btMultiBody_setSleepThreshold(btMultiBody* c_this,double sleepThreshold){
	btScalar c_arg_sleepThreshold=sleepThreshold;
	c_this->setSleepThreshold(c_arg_sleepThreshold);
}

void bullet_btMultiBody_setSleepTimeout(btMultiBody* c_this,double sleepTimeout){
	btScalar c_arg_sleepTimeout=sleepTimeout;
	c_this->setSleepTimeout(c_arg_sleepTimeout);
}

void bullet_btMultiBody_setupFixed(btMultiBody* c_this,int i,double mass,btVector3* inertia,int parent,btQuaternion* rotParentToThis,btVector3* parentComToThisPivotOffset,btVector3* thisPivotToThisComOffset,bool deprecatedDisableParentCollision){
	int c_arg_i=i;
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	int c_arg_parent=parent;
	btQuaternion const& c_arg_rotParentToThis=(btQuaternion const&)(*rotParentToThis);
	btVector3 const& c_arg_parentComToThisPivotOffset=(btVector3 const&)(*parentComToThisPivotOffset);
	btVector3 const& c_arg_thisPivotToThisComOffset=(btVector3 const&)(*thisPivotToThisComOffset);
	bool c_arg_deprecatedDisableParentCollision=deprecatedDisableParentCollision;
	c_this->setupFixed(c_arg_i,c_arg_mass,c_arg_inertia,c_arg_parent,c_arg_rotParentToThis,c_arg_parentComToThisPivotOffset,c_arg_thisPivotToThisComOffset,c_arg_deprecatedDisableParentCollision);
}

void bullet_btMultiBody_setupPlanar(btMultiBody* c_this,int i,double mass,btVector3* inertia,int parent,btQuaternion* rotParentToThis,btVector3* rotationAxis,btVector3* parentComToThisComOffset,bool disableParentCollision){
	int c_arg_i=i;
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	int c_arg_parent=parent;
	btQuaternion const& c_arg_rotParentToThis=(btQuaternion const&)(*rotParentToThis);
	btVector3 const& c_arg_rotationAxis=(btVector3 const&)(*rotationAxis);
	btVector3 const& c_arg_parentComToThisComOffset=(btVector3 const&)(*parentComToThisComOffset);
	bool c_arg_disableParentCollision=disableParentCollision;
	c_this->setupPlanar(c_arg_i,c_arg_mass,c_arg_inertia,c_arg_parent,c_arg_rotParentToThis,c_arg_rotationAxis,c_arg_parentComToThisComOffset,c_arg_disableParentCollision);
}

void bullet_btMultiBody_setupPrismatic(btMultiBody* c_this,int i,double mass,btVector3* inertia,int parent,btQuaternion* rotParentToThis,btVector3* jointAxis,btVector3* parentComToThisPivotOffset,btVector3* thisPivotToThisComOffset,bool disableParentCollision){
	int c_arg_i=i;
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	int c_arg_parent=parent;
	btQuaternion const& c_arg_rotParentToThis=(btQuaternion const&)(*rotParentToThis);
	btVector3 const& c_arg_jointAxis=(btVector3 const&)(*jointAxis);
	btVector3 const& c_arg_parentComToThisPivotOffset=(btVector3 const&)(*parentComToThisPivotOffset);
	btVector3 const& c_arg_thisPivotToThisComOffset=(btVector3 const&)(*thisPivotToThisComOffset);
	bool c_arg_disableParentCollision=disableParentCollision;
	c_this->setupPrismatic(c_arg_i,c_arg_mass,c_arg_inertia,c_arg_parent,c_arg_rotParentToThis,c_arg_jointAxis,c_arg_parentComToThisPivotOffset,c_arg_thisPivotToThisComOffset,c_arg_disableParentCollision);
}

void bullet_btMultiBody_setupRevolute(btMultiBody* c_this,int i,double mass,btVector3* inertia,int parentIndex,btQuaternion* rotParentToThis,btVector3* jointAxis,btVector3* parentComToThisPivotOffset,btVector3* thisPivotToThisComOffset,bool disableParentCollision){
	int c_arg_i=i;
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	int c_arg_parentIndex=parentIndex;
	btQuaternion const& c_arg_rotParentToThis=(btQuaternion const&)(*rotParentToThis);
	btVector3 const& c_arg_jointAxis=(btVector3 const&)(*jointAxis);
	btVector3 const& c_arg_parentComToThisPivotOffset=(btVector3 const&)(*parentComToThisPivotOffset);
	btVector3 const& c_arg_thisPivotToThisComOffset=(btVector3 const&)(*thisPivotToThisComOffset);
	bool c_arg_disableParentCollision=disableParentCollision;
	c_this->setupRevolute(c_arg_i,c_arg_mass,c_arg_inertia,c_arg_parentIndex,c_arg_rotParentToThis,c_arg_jointAxis,c_arg_parentComToThisPivotOffset,c_arg_thisPivotToThisComOffset,c_arg_disableParentCollision);
}

void bullet_btMultiBody_setupSpherical(btMultiBody* c_this,int i,double mass,btVector3* inertia,int parent,btQuaternion* rotParentToThis,btVector3* parentComToThisPivotOffset,btVector3* thisPivotToThisComOffset,bool disableParentCollision){
	int c_arg_i=i;
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	int c_arg_parent=parent;
	btQuaternion const& c_arg_rotParentToThis=(btQuaternion const&)(*rotParentToThis);
	btVector3 const& c_arg_parentComToThisPivotOffset=(btVector3 const&)(*parentComToThisPivotOffset);
	btVector3 const& c_arg_thisPivotToThisComOffset=(btVector3 const&)(*thisPivotToThisComOffset);
	bool c_arg_disableParentCollision=disableParentCollision;
	c_this->setupSpherical(c_arg_i,c_arg_mass,c_arg_inertia,c_arg_parent,c_arg_rotParentToThis,c_arg_parentComToThisPivotOffset,c_arg_thisPivotToThisComOffset,c_arg_disableParentCollision);
}

void bullet_btMultiBody_setUseGyroTerm(btMultiBody* c_this,bool useGyro){
	bool c_arg_useGyro=useGyro;
	c_this->setUseGyroTerm(c_arg_useGyro);
}

void bullet_btMultiBody_setUserIndex(btMultiBody* c_this,int index){
	int c_arg_index=index;
	c_this->setUserIndex(c_arg_index);
}

void bullet_btMultiBody_setUserIndex2(btMultiBody* c_this,int index){
	int c_arg_index=index;
	c_this->setUserIndex2(c_arg_index);
}

void bullet_btMultiBody_setUserPointer(btMultiBody* c_this,void* userPointer){
	void * c_arg_userPointer=(void *)(void*)(userPointer);
	c_this->setUserPointer(c_arg_userPointer);
}

void bullet_btMultiBody_setWorldToBaseRot(btMultiBody* c_this,btQuaternion* rot){
	btQuaternion const& c_arg_rot=(btQuaternion const&)(*rot);
	c_this->setWorldToBaseRot(c_arg_rot);
}

void bullet_btMultiBody_spatialTransform(btMultiBody* c_this,btMatrix3x3* rotation_matrix,btVector3* displacement,btVector3* top_in,btVector3* bottom_in,btVector3* top_out,btVector3* bottom_out){
	btMatrix3x3 const& c_arg_rotation_matrix=(btMatrix3x3 const&)(*rotation_matrix);
	btVector3 const& c_arg_displacement=(btVector3 const&)(*displacement);
	btVector3 const& c_arg_top_in=(btVector3 const&)(*top_in);
	btVector3 const& c_arg_bottom_in=(btVector3 const&)(*bottom_in);
	btVector3& c_arg_top_out=(btVector3&)(*top_out);
	btVector3& c_arg_bottom_out=(btVector3&)(*bottom_out);
	c_this->spatialTransform(c_arg_rotation_matrix,c_arg_displacement,c_arg_top_in,c_arg_bottom_in,c_arg_top_out,c_arg_bottom_out);
}

void bullet_btMultiBody_stepPositionsMultiDof(btMultiBody* c_this,double dt,double* pq,double* pqd){
	btScalar c_arg_dt=dt;
	btScalar * c_arg_pq=(btScalar *)(void*)(pq);
	btScalar * c_arg_pqd=(btScalar *)(void*)(pqd);
	c_this->stepPositionsMultiDof(c_arg_dt,c_arg_pq,c_arg_pqd);
}

void bullet_btMultiBody_substractSplitV(btMultiBody* c_this){
	c_this->substractSplitV();
}

void bullet_btMultiBody_useGlobalVelocities(btMultiBody* c_this,bool use){
	bool c_arg_use=use;
	c_this->useGlobalVelocities(c_arg_use);
}

void bullet_btMultiBody_useRK4Integration(btMultiBody* c_this,bool use){
	bool c_arg_use=use;
	c_this->useRK4Integration(c_arg_use);
}

void bullet_btMultiBody_wakeUp(btMultiBody* c_this){
	c_this->wakeUp();
}

btVector3* bullet_btMultiBody_worldDirToLocal(btMultiBody* c_this,int i,btVector3* world_dir){
	int c_arg_i=i;
	btVector3 const& c_arg_world_dir=(btVector3 const&)(*world_dir);
	btVector3 c_out = c_this->worldDirToLocal(c_arg_i,c_arg_world_dir);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBody_worldPosToLocal(btMultiBody* c_this,int i,btVector3* world_pos){
	int c_arg_i=i;
	btVector3 const& c_arg_world_pos=(btVector3 const&)(*world_pos);
	btVector3 c_out = c_this->worldPosToLocal(c_arg_i,c_arg_world_pos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
